<?php
require_once('includes/clases/Horario.php');
require_once('includes/clases/Grupo.php');
require_once('includes/clases/ConstantesCargaAcademica.php');
require_once('includes/clases/Logger.php');
require_once('includes/clases/HorarioProfesor.php');

class AccesoDatosCargaGlobales{
	private $logger = null;

	function __construct( $logger=null ) {
		if( $logger == null ){
			$this->logger = new Logger();
		}else{
			$this->logger = $logger;
		}
	}

	static function conexion(){
        $con=mysqli_connect('localhost', 'root', null, 'ggrupos',null,null);
        // Check connection
        if (mysqli_connect_errno())
        {
            $this->logger->log( "Fallo la conexion a la base de datos: " . mysqli_connect_error() , Logger::$ERROR );
        }
        return $con;
    }

    function guardarHorarios( $horarios ){
    	$arrlength = count( $horarios );
    	for( $x=0; $x < $arrlength; $x++ ){
			$horario = $horarios[$x];
			$this->guardarHorario( $horario );
			$this->logger->log( $horario->display(), Logger::$INFO );
		}
	}

	function guardarHorario( $horario ){
    	$this->logger->log("Creando Horario");
    	$this->insertarHorario( $horario );
    }

    function insertarHorario( $horario ){
    	if( $this->db_insertar_horario( $horario ) == 1 ){
    		$this->logger->log( "horario insertado" , Logger::$INFO );
    	}
    }

    function borrarHorariosDelGrupo( $grupo ){
    	$result = $this->db_eliminar_horarios_by_grupo( $grupo->id );
    	return $result;
    }

    function liberarRecursos(& $result ){
        $result->close();
    }

    function db_obtener_id_grupo_horariosglobales_by_trimestre( $idTrimestre ){
        $result = mysqli_query( self::conexion(), "SELECT COUNT( hg.grupo ) " . 
                                                  "FROM horariosglobales hg, grupos g " .
                                                  "WHERE g.trimestre = $idTrimestre " . 
                                                  "AND hg.grupo = g.id" );
        $row = $result->fetch_row();
        $this->liberarRecursos( $result );
        return $row[0];
    }

    function db_insertar_horario( $horario ){
        $result = mysqli_query( self::conexion(), "INSERT INTO horariosglobales (grupo, inicio, fin, dia, salon) VALUES ('$horario->grupo', '$horario->inicio', '$horario->fin', '$horario->dia', '$horario->salon')" );
        return $result;
    }

    function db_eliminar_horarios_by_grupo( $idGrupo ){
        $result = mysqli_query( self::conexion(), "DELETE FROM horariosglobales WHERE grupo = '$idGrupo'" );
        return $result;
    }
}
?>